<html>
  <head>
    <title>应用程序配置相关端点  (通过http api 访问应用程序配置)</title>
  </head>
  <body>
    <script>
        // 应用程序配置端点   Application Configuration Endpoint
        /*
                ABP提供了"一个预构建"的标准端点(用于访问当前程序配置)，其中包含有关应用程序/服务的一些有用信息。

                下是此端点的一些基本信息列表：

                      ①、为当前用户授予策略（权限）。

                      ②、为当前用户配置设置值。

                      ③、有关当前用户的信息（如id和用户名）。

                      ④、有关当前租户的信息（如id和名称）。

                      ⑤、当前用户的时区信息和应用程序的时钟类型。

                备注：

                      如果您已经开始使用ABP的启动解决方案模板并使用官方用户界面选项之一，那么所有这些都是为您设置的，您不需要知道这些细节。
                      
                      但是，如果您正在从头开始构建一个用户界面应用程序，您可能想知道这个端点。
        */

        /*
            一、HTTP API  (使用 HTTP API 访问应用程序配置)

                      如果您导航到基于ABP的Web应用程序或HTTP服务的 "/api/abp/application-configuration",

                      您可以作为JSON对象访问配置。此端点对于创建应用程序的客户端很有用。

        */

        /*
            二、JavaScript  脚本

                       对于asp.net core MVC Razor Pages 应用程序，JavaScript端也可以使用相同的配置值。

                       "/Abp/ApplicationConfigurationScript" 是基于上述HTTP Api 自动生成的脚本的URl. 


                       有关ASP.NETCore UI，请参阅JavaScript API文档:  https://abp.io/docs/latest/framework/ui/mvc-razor-pages/javascript-api

                       其他UI类型提供相关平台的原生服务。例如，请参阅Angular UI设置留档以了解如何使用此端点公开的设置值。
        */

        /*
            三、扩展端点  Extending the Endpoint 


                       application-configuration端点包含有关应用程序的一些有用信息，例如本地化值、当前用户信息、授予的权限等。

                       甚至大多数时候，这些提供的值足以在您的应用程序中用于执行常见需求，例如获取登录用户的ID或其授予的权限。

                       您可能仍然希望扩展此端点并为您的应用程序/服务提供附加信息。

                       此时，您可以使用IApplicationConfigurationContributor端点。


                       ★、IApplicationConfigurationContributor 

                                  IApplicationConfigurationContributor是应该实现的接口，用于向application-configuration端点添加附加信息。

                                  eg:  设置部署版本

                                      using System.Threading.Tasks;
                                      using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
                                      using Volo.Abp.Data;

                                      namespace Acme.BookStore.Web
                                      {
                                          public class MyApplicationConfigurationContributor : IApplicationConfigurationContributor  // 实现此接口来扩展application-configuration端点。
                                          {
                                              public Task ContributeAsync(ApplicationConfigurationContributorContext context)
                                              {
                                                  // 此类中你可以注入任何服务来辅助完成你的逻辑
                                                  var deploymentVersion = "v1.0.0"; 

                                                  // 设置应用程序版本
                                                  context.ApplicationConfiguration.SetProperty("deploymentVersion", deploymentVersion); // 设置属性值

                                                  return Task.CompletedTask;
                                              }
                                          }
                                      }


                                    IApplicationConfigurationContributor定义使用指定的附加数据扩展application-configuration端点的ContributeAsync方法。

                                    您可以根据需要注入服务并执行扩展端点所需的任何逻辑

                                    (应用程序配置贡献者由ABP自动发现并作为应用程序配置初始化过程的一部分执行。)
        */
    </script>
  </body>
</html>